<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Ruby</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Ruby"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Ruby rootpage-Ruby skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span lang="en">Ruby</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><p class="mw-empty-elt">
</p>
<p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#ca3723;color:black;"><span style="color: #fff;">Ruby</span><style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}
/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="2"><hr style="height:2px; color:inherit; background-color:#ca3723;"></td></tr>
<tr>
<th scope="row">Date de première version
</th>
<td><span class="wd_p571"><time datetime="1995" data-sort-value="1995" class="date-lien"><a href="1995" title="1995">1995</a></time></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigmes</a>
</th>
<td><a href="Interpr%C3%A8te_(informatique)" title="Interprète (informatique)">Interprété</a>, <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">objet</a>, <a href="Programmation_imp%C3%A9rative" title="Programmation impérative">impératif</a>, <a href="Programmation_concurrente" title="Programmation concurrente">concurrent</a>, <a href="Programmation_fonctionnelle" title="Programmation fonctionnelle">fonctionnel</a>
</td>
</tr>
<tr>
<th scope="row">Auteur
</th>
<td><a href="Yukihiro_Matsumoto" title="Yukihiro Matsumoto">Yukihiro Matsumoto</a>
</td>
</tr>
<tr>
<th scope="row">Développeurs
</th>
<td><a href="Yukihiro_Matsumoto" title="Yukihiro Matsumoto">Yukihiro Matsumoto</a> et des contributeurs
</td>
</tr>
<tr>
<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td><span class="wd_p348">3.4.7 (<time class="nowrap date-lien" datetime="2025-10-07" data-sort-value="2025-10-07"><a href="7_octobre" title="7 octobre">7</a> <a href="Octobre_2025" title="Octobre 2025">octobre</a> <a href="2025" title="2025">2025</a></time>)<sup id="cite_ref-wikidata-4bbe1c7e80216b08754fc0b8cbad510a668fe2de_1-1" class="reference"><a href="#cite_note-wikidata-4bbe1c7e80216b08754fc0b8cbad510a668fe2de-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup></span>
</td>
</tr>
<tr>
<th scope="row">Typage
</th>
<td><a href="Typage_fort" title="Typage fort">Fort</a>, <a href="Typage_dynamique" title="Typage dynamique">dynamique</a>
</td>
</tr>
<tr>
<th scope="row">Influencé par
</th>
<td><a href="Eiffel_(langage)" title="Eiffel (langage)">Eiffel</a>, <a href="Lisp_(langage)" class="mw-redirect" title="Lisp (langage)">Lisp</a>, <a href="Smalltalk" title="Smalltalk">Smalltalk</a>, <a href="Perl_(langage)" title="Perl (langage)">Perl</a>, <a href="Python_(langage)" title="Python (langage)">Python</a>, <a href="Dylan_(langage)" title="Dylan (langage)">Dylan</a>, <a href="Ada_(langage)" title="Ada (langage)">Ada</a> et <a href="CLU_(langage)" title="CLU (langage)">CLU</a>
</td>
</tr>
<tr>
<th scope="row">A influencé
</th>
<td><a href="Langage_D" class="mw-redirect" title="Langage D">langage D</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>, <a href="Groovy_(langage)" title="Groovy (langage)">Groovy</a>, <a href="Perl_6" class="mw-redirect" title="Perl 6">Perl 6</a>
</td>
</tr>
<tr>
<th scope="row">Implémentations
</th>
<td>Ruby, <a href="YARV" title="YARV">YARV</a>, <a href="Ruby_MRI" title="Ruby MRI">Ruby MRI</a>, <a href="JRuby" title="JRuby">JRuby</a>, XRuby, <a href="Rubinius" title="Rubinius">Rubinius</a>, Cardinal, Gardens Point Ruby.NET, <a href="IronRuby" title="IronRuby">IronRuby</a>, MacRuby, <a rel="nofollow" class="external text" href="http://mruby.org/">mruby</a> <a rel="nofollow" class="external text" href="https://code.google.com/p/android-ruby/">android-ruby</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Langage_de_programmation" title="Langage de programmation">Écrit en</a>
</th>
<td><span class="wd_p277"><a href="C_(langage)" title="C (langage)">C</a></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">Système d'exploitation</a>
</th>
<td><a href="Multiplate-forme" class="mw-redirect" title="Multiplate-forme">Multiplate-forme</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a>
</th>
<td><span class="wd_p275"><a href="Licence_Ruby" title="Licence Ruby">Licence Ruby</a>, <a href="Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">licence publique générale GNU version 2</a><sup id="cite_ref-wikidata-ee7af8d0e4d0fc98cf7edc7abc6cdb53c10b565e_3-0" class="reference"><a href="#cite_note-wikidata-ee7af8d0e4d0fc98cf7edc7abc6cdb53c10b565e-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> et BSD 2-clauses <small>(<a href="https://en.wikipedia.org/wiki/Simplified_BSD_license" class="extiw external" title="en:Simplified BSD license"><span class="indicateur-langue" title="Article sur Wikipédia en anglais">en</span></a>)</small><sup id="cite_ref-wikidata-76b8b08edbf42cecb0f0d32e32d6b28a4e94490a_4-0" class="reference"><a href="#cite_note-wikidata-76b8b08edbf42cecb0f0d32e32d6b28a4e94490a-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a>
</th>
<td><span class="wd_p856"><a rel="nofollow" class="external text" href="https://www.ruby-lang.org/">www.ruby-lang.org</a></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension de fichier</a>
</th>
<td><span class="wd_p1195">rb et rbw</span>
</td>
</tr>
<tr>
</tr>
</tbody></table>
<p><b>Ruby</b> est un <a href="Langage_de_programmation" title="Langage de programmation">langage de programmation</a> <a href="Logiciel_libre" title="Logiciel libre">libre</a>. Il est <a href="Interpr%C3%A8te_(informatique)" title="Interprète (informatique)">interprété</a>, <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orienté objet</a> et multi-<a href="Paradigme_(programmation)" title="Paradigme (programmation)">paradigme</a>. Le langage a été standardisé au Japon en 2011 (<a href="Japanese_Industrial_Standard" title="Japanese Industrial Standard">JIS</a> X 3017:2011)<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>, et en 2012 par l'<a href="Organisation_internationale_de_normalisation" title="Organisation internationale de normalisation">Organisation internationale de normalisation</a> (ISO 30170:2012)<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Historique">Historique</h2></div>
<p><a href="Yukihiro_Matsumoto" title="Yukihiro Matsumoto">Yukihiro « Matz » Matsumoto</a> est le créateur de Ruby. Frustré par son expérience en développement <a href="Smalltalk" title="Smalltalk">Smalltalk</a> et <a href="Lisp_(langage)" class="mw-redirect" title="Lisp (langage)">Lisp</a>, il commence la conception d'un nouveau langage en <a href="1993_en_informatique" title="1993 en informatique">1993</a> sous <a href="GNU_Emacs" title="GNU Emacs">Emacs</a>, puis publie une première version en <a href="1995_en_informatique" title="1995 en informatique">1995</a> sous <a href="Licence_libre" title="Licence libre">licence libre</a>. Il enchaîne depuis les nouvelles versions.
</p><p>Depuis l'arrivée d'une documentation anglophone, et du <span class="lang-en" lang="en"><i>framework web <a href="Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a></i></span> en 2004, Ruby a connu un certain engouement qui n'a cessé de croître jusqu'en 2008 dans le monde de la programmation, puis une érosion lente si on en juge par son <a href="Index_TIOBE" title="Index TIOBE">index TIOBE</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Philosophie">Philosophie</h2></div>
<p><span class="lang-en" lang="en">Ruby</span> est fortement <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orienté objet</a> et se rapproche ainsi du paradigme objet de <a href="Smalltalk" title="Smalltalk">Smalltalk</a><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>note 1<span class="cite-bracket">]</span></a></sup> :
</p>
<ul><li>toute <a href="Donn%C3%A9e_(informatique)" title="Donnée (informatique)">donnée</a> est un <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">objet</a>, y compris les <a href="Type_(informatique)" title="Type (informatique)">types primitifs</a> ;</li>
<li>toute <a href="Fonction_(informatique)" class="mw-redirect" title="Fonction (informatique)">fonction</a> est une <a href="M%C3%A9thode_(informatique)" title="Méthode (informatique)">méthode</a> ;</li>
<li>toute <a href="Variable_(informatique)" title="Variable (informatique)">variable</a> est une référence à un <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">objet</a>.</li></ul>
<p>Malgré cet aspect exclusivement <a href="Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">objet</a>, la <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">programmation procédurale</a> est possible et fréquente.
<span class="lang-en" lang="en">Ruby</span> utilise une <a href="Syntaxe" title="Syntaxe">syntaxe</a> simple, inspirée par <a href="Eiffel_(langage)" title="Eiffel (langage)">Eiffel</a> et <a href="Ada_(langage)" title="Ada (langage)">Ada</a><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Fonctionnalités"><span id="Fonctionnalit.C3.A9s"></span>Fonctionnalités</h2></div>
<p>Les fonctionnalités principales sont :
</p>
<ul><li>l'<a href="Orient%C3%A9_objet" class="mw-redirect" title="Orienté objet">orientation objet</a> omniprésente ;</li>
<li>le <a href="Ramasse-miettes_(informatique)" title="Ramasse-miettes (informatique)">ramasse-miettes</a> chargé de libérer automatiquement la <a href="M%C3%A9moire_informatique" class="mw-redirect" title="Mémoire informatique">mémoire</a> ;</li>
<li>le <a href="Syst%C3%A8me_de_gestion_d'exceptions" title="Système de gestion d'exceptions">système de gestion d'exceptions</a> pour gérer les erreurs exceptionnelles ;</li>
<li>la possibilité de modifier les <a href="Classe_(informatique)" title="Classe (informatique)">classes</a> pendant l'exécution du <a href="Programme_informatique" title="Programme informatique">programme</a>, qu'elles soient définies par l'utilisateur ou non ;</li>
<li>l'intégration dans sa <a href="Syntaxe" title="Syntaxe">syntaxe</a> des <a href="Expression_rationnelle" class="mw-redirect" title="Expression rationnelle">expressions rationnelles</a> ;</li>
<li>les blocs qui servent d'<a href="It%C3%A9rateur_(motif_de_conception)" class="mw-redirect" title="Itérateur (motif de conception)">itérateur</a> et permettent de passer des morceaux de programme en paramètre ;</li>
<li>l'<a href="H%C3%A9ritage_(Informatique)" class="mw-redirect" title="Héritage (Informatique)">héritage</a> simple ;</li>
<li>l'inclusion de <a href="Module_(programmation)" title="Module (programmation)">modules</a> dans les <a href="Classe_(informatique)" title="Classe (informatique)">classes</a>, une autre manière de concevoir l'<a href="H%C3%A9ritage_multiple" title="Héritage multiple">héritage multiple</a> (<a href="Mixin" title="Mixin">mixin</a>) ;</li>
<li>l'écriture d'<a href="Extension_(logiciel)" class="mw-redirect" title="Extension (logiciel)">extensions</a> en <a href="C_(langage)" title="C (langage)">C</a> relativement simple ;</li>
<li>les nombres <a href="Entier_relatif" title="Entier relatif">entiers</a> de taille illimitée avec conversion automatique lorsque c'est nécessaire ;</li>
<li>la portée des <a href="Variable_(informatique)" title="Variable (informatique)">variables</a> définie par leur forme : <code>var</code> est une <a href="Variable_locale" title="Variable locale">variable locale</a>, <code>@var</code> est une <a href="Variable_d'instance" title="Variable d'instance">variable d'instance</a>, <code>@@var</code> est une variable de classe, <code>$var</code> est une <a href="Variable_globale" title="Variable globale">variable globale</a>, <code>Var</code> est une <a href="Constante_(programmation_informatique)" title="Constante (programmation informatique)">constante</a>.</li>
<li>les <a href="Processus_l%C3%A9ger" class="mw-redirect" title="Processus léger"><span class="lang-en" lang="en"><i>threads</i></span></a> indépendants du <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">système d'exploitation</a> ;</li>
<li>la <a href="R%C3%A9flexion_(informatique)" title="Réflexion (informatique)">réflexion</a>, c'est-à-dire la possibilité pour les programmes et les objets de s'inspecter eux-mêmes et de se modifier.</li></ul>
<div class="mw-heading mw-heading2"><h2 id="Implémentations"><span id="Impl.C3.A9mentations"></span>Implémentations</h2></div>
<p>L'<a href="Interpr%C3%A8te_(informatique)" title="Interprète (informatique)">interpréteur</a> officiel, <a href="Ruby_MRI" title="Ruby MRI">Ruby MRI</a>, fonctionne sur de nombreux <a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">systèmes d'exploitation</a> : <a href="UNIX" class="mw-redirect" title="UNIX">UNIX</a>, <a href="Linux" title="Linux">Linux</a>, <a href="Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>, <a href="MS-DOS" title="MS-DOS">MS-DOS</a>, <a href="OS_X" class="mw-redirect" title="OS X">OS X</a>, <a href="OS/2" title="OS/2">OS/2</a>, <a href="ReactOS" title="ReactOS">ReactOS</a>, <a href="AmigaOS" title="AmigaOS">AmigaOS</a>, etc.
Il est publié sous la double licence <a href="Logiciels_libres" class="mw-redirect" title="Logiciels libres">libre</a> <a href="Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">GNU GPL</a> et la licence Ruby<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>.
</p><p>Ruby est fourni avec <a href="Interactive_Ruby" title="Interactive Ruby">irb</a>, un <a href="Interpr%C3%A9teur_de_commandes" title="Interpréteur de commandes">interpréteur de commandes</a> <a href="Interactivit%C3%A9" title="Interactivité">interactif</a> pour tester en profondeur le fonctionnement du langage. Il existe une version <a href="Web" class="mw-redirect" title="Web">web</a> d'irb pour tester Ruby dans un navigateur<sup id="cite_ref-tryruby_10-0" class="reference"><a href="#cite_note-tryruby-10"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>.
</p><p>Depuis le <time class="nowrap date-lien" datetime="2007-01-01" data-sort-value="2007-01-01"><a href="1er_janvier" title="1er janvier">1<sup>er</sup></a> <a href="Janvier_2007" title="Janvier 2007">janvier</a> <a href="2007_en_informatique" title="2007 en informatique">2007</a></time>, le développement de Ruby (1.9) est basé sur l'interpréteur <a href="YARV" title="YARV">YARV</a> écrit par Koichi Sasada<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup>.
Ce nouvel interpréteur apporte un gain notable en performances<sup id="cite_ref-ruby-implementations-shootout_12-0" class="reference"><a href="#cite_note-ruby-implementations-shootout-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup>.
</p><p>Outre <a href="YARV" title="YARV">YARV</a>, il existe plusieurs autres interpréteurs Ruby<sup id="cite_ref-ruby-implementations-shootout_12-1" class="reference"><a href="#cite_note-ruby-implementations-shootout-12"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> :
</p>
<ul><li><a href="JRuby" title="JRuby">JRuby</a><sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> : il est écrit en <a href="Langage_de_programmation_Java" class="mw-redirect" title="Langage de programmation Java">Java</a> et interprète directement du <a href="Code_source" title="Code source">code source</a> écrit en Ruby.</li>
<li>XRuby : Il convertit du code Ruby en bytecode <a href="Langage_de_programmation_Java" class="mw-redirect" title="Langage de programmation Java">Java</a> et est plus rapide sur certains <a href="Test_de_performance" title="Test de performance">tests de performance</a> que la version 1.8.5 de l'interpréteur officiel<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="Rubinius" title="Rubinius">Rubinius</a> : Une machine virtuelle simplifiée, inspirée de <a href="Smalltalk" title="Smalltalk">Smalltalk-80</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>, implémentée en Ruby même.</li>
<li>Cardinal<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> : un interpréteur fonctionnant sous <a href="Parrot_(machine_virtuelle)" title="Parrot (machine virtuelle)">Parrot</a>.</li>
<li>Gardens Point Ruby.NET : Un interpréteur fonctionnant sur le <span class="lang-en" lang="en"><i><a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a></i></span><sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup>.</li>
<li><a href="IronRuby" title="IronRuby">IronRuby</a> : un <a href="Compilateur" title="Compilateur">compilateur</a> fonctionnant sur le <a href="Dynamic_Language_Runtime" title="Dynamic Language Runtime">DLR</a> du <span class="lang-en" lang="en"><i><a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a></i></span><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup>.</li>
<li>Ruby for .Net : un compilateur fonctionnant sur le <a href="Common_Language_Runtime" title="Common Language Runtime">CLR</a> du <span class="lang-en" lang="en"><i><a href="Framework_.NET" class="mw-redirect" title="Framework .NET">framework .NET</a></i></span> qui a été abandonnée au profit de <a href="Dynamic_Language_Runtime" title="Dynamic Language Runtime">IronRuby</a>.</li>
<li>MacRuby : implémentation de Ruby 1.9 spécifique à <a href="Mac_OS_X" class="mw-redirect" title="Mac OS X">OS X</a>, fonctionnant par-dessus le <a href="Objective-C" title="Objective-C">runtime Objective-C</a><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>, permettant un usage natif des composants <a href="Cocoa_(Apple)" title="Cocoa (Apple)">Cocoa</a>, contrairement aux bindings RubyCocoa.</li>
<li>Truffleruby : supporté et développé par Oracle, il s'agit d'une implémentation du langage Ruby sur la GraalVM, permettant des performances supérieures à MRI<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>.</li></ul>
<p>La version 2.0 permet de créer des applications graphiques pour <a href="MacOS" title="MacOS">macOS</a> et <a href="IOS" title="IOS">iOS</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Interprètes_embarqués"><span id="Interpr.C3.A8tes_embarqu.C3.A9s"></span>Interprètes embarqués</h2></div>
<p>Ruby possède une <a href="Interface_de_programmation" title="Interface de programmation">interface de programmation</a> en <a href="C_(langage)" title="C (langage)">langage C</a> qui lui permet d'être intégré au sein d'autres <a href="Logiciel" title="Logiciel">logiciels</a>. Ruby est notamment utilisable dans :
</p>
<ul><li><a href="Apache_HTTP_Server" title="Apache HTTP Server">Apache</a> avec <i>mod_ruby</i> ou <i>Phusion Passenger</i> pour générer des <a href="Page_web" title="Page web">pages web</a> en Ruby ;</li>
<li>et <a href="PostgreSQL" title="PostgreSQL">PostgreSQL</a> avec <i>PL/ruby</i> pour faire exécuter des commandes Ruby au serveur de <a href="Base_de_donn%C3%A9es" title="Base de données">base de données</a>.</li></ul>
<p>Le logiciel de création de jeu vidéo <span class="lang-en" lang="en"><a href="RPG_Maker" title="RPG Maker">RPG Maker</a></span> intègre dans ses versions XP et VX une bibliothèque nommée RGSS, <span class="lang-en" lang="en"><i>Ruby Game Scripting System</i></span> permettant l'usage de scripts en Ruby.
</p>
<div class="mw-heading mw-heading2"><h2 id="Bibliothèques"><span id="Biblioth.C3.A8ques"></span>Bibliothèques</h2></div>
<p>Il existe de nombreuses <a href="Biblioth%C3%A8que_(logicielle)" class="mw-redirect" title="Bibliothèque (logicielle)">bibliothèques</a> de fonctionnalités adjoignables au langage.
Le dépôt historique de ces bibliothèques est le <span class="lang-en" lang="en"><i>Ruby Application Archive</i></span> (RAA)<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup>.
Il contient des fonctionnalités supplémentaires pour Ruby comme des bibliothèques de classes et de modules, mais aussi des extensions permettant d'utiliser des bibliothèques tierces.
</p><p>Le <i>RAA</i> contient également des logiciels écrits en Ruby. Parmi ces logiciels on trouve notamment <i>Rubygems</i> qui est un outil d'empaquetage et d'installation pour les extensions Ruby<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup>.
Il permet de déployer rapidement des bibliothèques et des programmes Ruby.
</p><p>La base de données de gems <i>Rubygems</i> est devenue avec le temps la référence en stockage de bibliothèques pour Ruby (plus de 49 milliards de téléchargements<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup>) au travers de l'outil <i>Bundler</i> (également développé en Ruby), les dépendances d'un projet sont téléchargées par défaut depuis <i>Rubygems</i>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Exemples">Exemples</h2></div>
<p>Le classique <span class="lang-en" lang="en"><i><a href="Hello_world" title="Hello world">Hello world</a></i></span> :
</p>
<div class="mw-highlight mw-highlight-lang-ruby mw-content-ltr" dir="ltr"><pre><span></span><span class="nb">puts</span><span class="w"> </span><span class="s1">'Hello World!'</span>
</pre></div>
<p>Utilisation des objets :
</p>
<div class="mw-highlight mw-highlight-lang-ruby mw-content-ltr" dir="ltr"><pre><span></span><span class="c1"># Tout est objet, même les nombres:</span>
<span class="o">-</span><span class="mi">199</span><span class="o">.</span><span class="n">abs</span><span class="w"> </span><span class="c1"># 199</span>
<span class="s1">'ruby is cool'</span><span class="o">.</span><span class="n">length</span><span class="w"> </span><span class="c1"># 12</span>
<span class="s1">'Rick'</span><span class="o">.</span><span class="n">index</span><span class="w"> </span><span class="s1">'c'</span><span class="w"> </span><span class="c1"># 2</span>
<span class="s2">"Nice Day Isn't It?"</span><span class="o">.</span><span class="n">downcase</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="sr">//</span><span class="p">)</span><span class="o">.</span><span class="n">sort</span><span class="o">.</span><span class="n">uniq</span><span class="o">.</span><span class="n">join</span><span class="w"> </span><span class="c1"># " '?acdeinsty"</span>
</pre></div>
<p>Utilisation de <a href="Mixin" title="Mixin">mixin</a> et de l'<a href="H%C3%A9ritage_(Informatique)" class="mw-redirect" title="Héritage (Informatique)">héritage</a> :
</p>
<div class="mw-highlight mw-highlight-lang-ruby mw-content-ltr" dir="ltr"><pre><span></span><span class="k">module</span><span class="w"> </span><span class="nn">AnimalSkills</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">eat</span>
<span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="s2">"I'm eating !"</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">move</span>
<span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="s2">"I'm moving !"</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">express</span><span class="p">;</span><span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="s2">"I'm expressing !"</span><span class="w"> </span><span class="k">end</span>
<span class="k">end</span>
<span class="k">class</span><span class="w"> </span><span class="nc">Animal</span>
<span class="w"> </span><span class="kp">include</span><span class="w"> </span><span class="no">AnimalSkills</span><span class="w"> </span><span class="c1"># mixin</span>
<span class="w"> </span><span class="vc">@@name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'an animal'</span><span class="w"> </span><span class="c1"># variable de classe</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">initialize</span><span class="p">(</span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">weight</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="p">)</span><span class="w"> </span><span class="c1"># initialisation des variables d'instance</span>
<span class="w"> </span><span class="vi">@size</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">size</span><span class="o">.</span><span class="n">to_i</span>
<span class="w"> </span><span class="vi">@weight</span><span class="p">,</span><span class="w"> </span><span class="vi">@color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">weight</span><span class="o">.</span><span class="n">to_i</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="o">.</span><span class="n">to_s</span>
<span class="w"> </span><span class="k">end</span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">describe</span>
<span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="s2">"I'm </span><span class="si">#{</span><span class="vc">@@name</span><span class="si">}</span><span class="s2"> !"</span>
<span class="w"> </span><span class="nb">puts</span><span class="w"> </span><span class="s2">"I'm </span><span class="si">#{</span><span class="vi">@size</span><span class="si">}</span><span class="s2"> meter tall, I weigh </span><span class="si">#{</span><span class="vi">@weight</span><span class="si">}</span><span class="s2"> kilograms and I'm "</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="vi">@color</span>
<span class="w"> </span><span class="k">end</span>
<span class="k">end</span>
<span class="k">class</span><span class="w"> </span><span class="nc">Zebra</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="no">Animal</span><span class="w"> </span><span class="c1"># héritage</span>
<span class="w"> </span><span class="vc">@@name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'a zebra'</span><span class="w"> </span><span class="c1"># rédéfinition de la variable de classe: maintenant tous les animaux sont des zèbres !</span>
<span class="w"> </span>
<span class="w"> </span><span class="k">def</span><span class="w"> </span><span class="nf">initialize</span><span class="p">(</span><span class="n">size</span><span class="p">,</span><span class="w"> </span><span class="n">weight</span><span class="p">,</span><span class="w"> </span><span class="n">color</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">'black and white'</span><span class="p">)</span><span class="w"> </span><span class="c1"># surcharge</span>
<span class="w"> </span><span class="k">super</span><span class="w"> </span><span class="c1"># appel de la méthode de la classe mère (Animal)</span>
<span class="w"> </span><span class="k">end</span>
<span class="k">end</span>
<span class="n">z</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="no">Zebra</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">50</span><span class="p">)</span>
<span class="n">z</span><span class="o">.</span><span class="n">describe</span><span class="w"> </span><span class="c1"># => I'm a zebra ! / I'm 1 meter tall, I weigh 50 kilograms and I'm black and white</span>
<span class="n">z</span><span class="o">.</span><span class="n">eat</span><span class="w"> </span><span class="c1"># => I'm eating !</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Notes">Notes</h3></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references" data-mw-group="note">
<li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text">La principale différence étant que les structures de contrôle (if-then-else, while, etc.) ne sont pas des objets.</span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading3"><h3 id="Références"><span id="R.C3.A9f.C3.A9rences"></span>Références</h3></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-wikidata-4bbe1c7e80216b08754fc0b8cbad510a668fe2de-1"><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.ruby-lang.org/en/news/2025/10/07/ruby-3-4-7-released/"><cite style="font-style:normal;"><span class="lang-en" lang="en">Ruby 3.4.7 Released</span></cite></a> », <time class="nowrap" datetime="2025-10-07" data-sort-value="2025-10-07">7 octobre 2025</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2025-10-29" data-sort-value="2025-10-29">29 octobre 2025</time>)</small></span></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.digitalmars.com/d/1.0/">Intro – D Programming Language 1.0 – Digital Mars</a>.</span>
</li>
<li id="cite_note-wikidata-ee7af8d0e4d0fc98cf7edc7abc6cdb53c10b565e-3"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-ee7af8d0e4d0fc98cf7edc7abc6cdb53c10b565e_3-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/"><cite style="font-style:normal;">https://www.ruby-lang.org/ja/news/2013/06/30/we-retire-1-8-7/</cite></a> »</span></span>
</li>
<li id="cite_note-wikidata-76b8b08edbf42cecb0f0d32e32d6b28a4e94490a-4"><span class="mw-cite-backlink"><a href="#cite_ref-wikidata-76b8b08edbf42cecb0f0d32e32d6b28a4e94490a_4-0">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.ruby-lang.org/ja/news/2011/10/31/ruby-1-9-3-p0-is-released/"><cite style="font-style:normal;">https://www.ruby-lang.org/ja/news/2011/10/31/ruby-1-9-3-p0-is-released/</cite></a> »</span></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.webstore.jsa.or.jp/webstore/Com/FlowControl.jsp?lang=en&bunsyoId=JIS+X+3017%3A2011&dantaiCd=JIS&status=1&pageNo=0">JIS X 3017:2011 - Programming languages - Ruby</a>.</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=59579">ISO/IEC 30170:2012 Information technology - Programming languages - Ruby</a>.</span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://hopl.murdoch.edu.au/showlanguage.prx?exp=2458&language=Ruby">Ruby sur HOPL</a>, <span class="lang-en" lang="en"><i>the History of Programming Languages</i></span>.</span>
</li>
<li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.ruby-lang.org/en/LICENSE.txt">Texte de la licence sur le site officiel</a>.</span>
</li>
<li id="cite_note-tryruby-10"><span class="mw-cite-backlink"><a href="#cite_ref-tryruby_10-0">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://tryruby.hobix.com/"><span class="lang-en" lang="en"><i>Try Ruby!</i></span></a> sur hobix.com.</span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://blog.grayproductions.net/articles/the_ruby_vm_episode_i"><span class="lang-en" lang="en"><i>The Ruby VM: Episode <abbr class="abbr" title="1"><span class="romain" style="text-transform:uppercase">I</span></abbr></i></span></a>, interview de matz et de ko1 sur la machine virtuelle de Ruby.</span>
</li>
<li id="cite_note-ruby-implementations-shootout-12"><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://antoniocangiano.com/2007/12/03/the-great-ruby-shootout"><span class="lang-en" lang="en"><i>The Great Ruby Shootout</i></span></a>, comparaison des performances des principaux interpréteurs Ruby.</span>
</li>
<li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://jruby.sourceforge.net/">Site officiel de JRuby</a></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://xruby.blogspot.com/2007/03/xruby-runs-most-benchmark-faster-than.html"><span class="lang-en" lang="en"><i>XRuby is faster than Ruby 1.8.5 in most benchmarks</i></span></a>.</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://on-ruby.blogspot.com/2006/12/rubinius-interview.html">Rubinius Interview</a>.</span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://cardinal2.rubyforge.org/">Site du projet Cardinal</a>.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sapphiresteel.com/Ruby-NET-Integrating-the-Gardens">Ruby.NET - Integrating the Gardens Point Compiler</a>
par Huw Collingbourne.</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external free" href="http://www.ironruby.net/">http://www.ironruby.net/</a>.</span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.macruby.org/"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Site officiel de MacRuby</a>.</span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a> </span><span class="reference-text"><span class="ouvrage" id="PragTob2017"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="nom_auteur">PragTob</span>, « <a rel="nofollow" class="external text" href="https://pragtob.wordpress.com/2017/01/24/benchmarking-a-go-ai-in-ruby-cruby-vs-rubinius-vs-jruby-vs-truffle-a-year-later/"><cite style="font-style:normal;" lang="en">Benchmarking a Go AI in Ruby: CRuby vs. Rubinius vs. JRuby vs. Truffle – a year later</cite></a> », sur <span class="italique">Journeys of a not so young anymore Software Engineer</span>, <time class="nowrap" datetime="2017-01-24" data-sort-value="2017-01-24">24 janvier 2017</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-04-04" data-sort-value="2020-04-04">4 avril 2020</time>)</small></span></span>
</li>
<li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://raa.ruby-lang.org/">Ruby Application Archive</a>.</span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.rubygems.org/">Site officiel de Rubygems</a>.</span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://rubygems.org/"><cite style="font-style:normal;">RubyGems.org | votre communauté d'hébergement des gems</cite></a> », sur <span class="italique">rubygems.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-04-03" data-sort-value="2020-04-03">3 avril 2020</time>)</small></span></span>
</li>
</ol></div>
</div>
<div class="mw-heading mw-heading2"><h2 id="Annexes">Annexes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r194021218">
/* start https://fr.wikipedia.org/ */
.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}
/* end https://fr.wikipedia.org/ */
</style>
<div class="mw-heading mw-heading3"><h3 id="Bibliographie">Bibliographie</h3></div>
<ul><li><span class="ouvrage" id="Dave_ThomasAndrew_Hunt2000"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a href="Dave_Thomas_(programmeur)" title="Dave Thomas (programmeur)"><span class="nom_auteur">Dave Thomas</span></a> et <span class="nom_auteur">Andrew Hunt</span>, <cite class="italique" lang="en">Programming Ruby : The Pragmatic Programmer's Guide</cite>, <time>2000</time>, 564 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">0-201-71089-7</span>, <a rel="nofollow" class="external text" href="http://ruby-doc.org/docs/ProgrammingRuby/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Programming+Ruby&rft.stitle=The+Pragmatic+Programmer%27s+Guide&rft.aulast=Dave+Thomas&rft.au=Andrew+Hunt&rft.date=2000&rft.tpages=564&rft.isbn=0-201-71089-7&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="Yukihiro_Matsumoto2002"><span class="nom_auteur">Yukihiro Matsumoto</span> (<abbr class="abbr" title="traduction">trad.</abbr> de l'anglais), <cite class="italique"><span class="lang-en" lang="en">Ruby in a Nutshell</span></cite>, Cambridge/Cologne/Paris etc., O'Reilly, <time>2002</time>, 242 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">2-84177-210-1</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Ruby+in+a+Nutshell&rft.place=Cambridge%2FCologne%2FParis+etc.&rft.pub=O%27Reilly&rft.aulast=Yukihiro+Matsumoto&rft.date=2002&rft.tpages=242&rft.isbn=2-84177-210-1&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="Thomas2004"><span class="ouvrage" id="Dave_Thomas2004"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a href="Dave_Thomas_(programmeur)" title="Dave Thomas (programmeur)">Dave Thomas</a>, Chad Fowler et <a href="Andy_Hunt" title="Andy Hunt">Andy Hunt</a>, <cite class="italique" lang="en">Programming Ruby : The Pragmatic Programmer's Guide</cite>, <time>2004</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">0-9745140-5-5</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Programming+Ruby&rft.stitle=The+Pragmatic+Programmer%27s+Guide&rft.aulast=Thomas&rft.aufirst=Dave&rft.date=2004&rft.isbn=0-9745140-5-5&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></span></li>
<li><span class="ouvrage" id="Chris_Pine2006"><span class="nom_auteur">Chris Pine</span> (<abbr class="abbr" title="traduction">trad.</abbr> de l'anglais), <cite class="italique">Débuter en Programmation avec Ruby</cite>, Paris, CampusPress, <time>2006</time>, 165 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">2-7440-2078-8</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=D%C3%A9buter+en+Programmation+avec+Ruby&rft.place=Paris&rft.pub=CampusPress&rft.aulast=Chris+Pine&rft.date=2006&rft.tpages=165&rft.isbn=2-7440-2078-8&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="Lucas_CarlsonLeonard_Richardson2006"><span class="nom_auteur">Lucas Carlson</span> et <span class="nom_auteur">Leonard Richardson</span>, <cite class="italique">Ruby par l'exemple</cite>, <time>2006</time>, 867 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-2-84177-347-3</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Ruby+par+l%27exemple&rft.aulast=Lucas+Carlson&rft.au=Leonard+Richardson&rft.date=2006&rft.tpages=867&rft.isbn=978-2-84177-347-3&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="2006"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Hal Fulton, <cite class="italique" lang="en">The Ruby Way, Second Edition : Solutions and Techniques in Ruby Programming (2nd Edition)</cite>, <time>2006</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">0-672-32884-4</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=The+Ruby+Way%2C+Second+Edition+%3A+Solutions+and+Techniques+in+Ruby+Programming+%282nd+Edition%29&rft.date=2006&rft.isbn=0-672-32884-4&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="2006"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Maik Schmidt, <cite class="italique" lang="en">Enterprise Integration with Ruby : A Pragmatic Guide</cite>, <time>2006</time>, 346 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">0-9766940-6-9</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Enterprise+Integration+with+Ruby&rft.stitle=A+Pragmatic+Guide&rft.date=2006&rft.tpages=346&rft.isbn=0-9766940-6-9&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="2007"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Brian Marick, <cite class="italique" lang="en">Everyday Scripting with Ruby : For Teams, Testers, and You</cite>, <time>2007</time>, 301 <abbr class="abbr" title="pages">p.</abbr> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-0-9776166-1-9</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Everyday+Scripting+with+Ruby&rft.stitle=For+Teams%2C+Testers%2C+and+You&rft.date=2007&rft.tpages=301&rft.isbn=978-0-9776166-1-9&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li>
<li><span class="ouvrage" id="Peter_Cooper2007"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="nom_auteur">Peter Cooper</span>, <cite class="italique" lang="en">Beginning Ruby : From Novice to Professional</cite>, <time>2007</time> <small style="line-height:1em;">(<a href="International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <span class="nowrap">978-1-59059-766-8</span>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Beginning+Ruby&rft.stitle=From+Novice+to+Professional&rft.aulast=Peter+Cooper&rft.date=2007&rft.isbn=978-1-59059-766-8&rfr_id=info%3Asid%2Ffr.wikipedia.org%3ARuby"></span></span></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3></div>
<ul><li>mruby <a href="https://en.wikipedia.org/wiki/mruby" class="extiw external" title="en:mruby"><span class="indicateur-langue" title="Article en anglais : « mruby »">(en)</span></a></li>
<li><a href="Ruby_MRI" title="Ruby MRI">Ruby MRI</a></li>
<li><span class="lang-en" lang="en"><a href="Ruby_on_Rails" title="Ruby on Rails">Ruby on Rails</a></span></li>
<li><a href="YARV" title="YARV">YARV</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3></div>
<ul><li><cite class="ouvrage" id="site_officiel" style="font-style: normal;"><span class="wd_p856"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://www.ruby-lang.org/">Site officiel</a></span></cite></li>
<li><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr> <a rel="nofollow" class="external text" href="http://news.humancoders.com/t/ruby">Human Coders News - Ruby</a></li>
<li><abbr class="abbr indicateur-langue" title="Langue : français">(fr)</abbr> <a rel="nofollow" class="external text" href="http://ruby-gnome2.sourceforge.jp/fr/">Ruby-GNOME2</a></li></ul>
<div class="navbox-container" style="clear:both;">
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de l’informatique</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail des logiciels libres</span> </span></li> <li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2025-03-21" href="https://fr.wikipedia.org/wiki/?title=Ruby&oldid=224093127">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>
</body></html>